<?php

/**
 * gestion_usuarios actions.
 *
 * @package    auip
 * @subpackage gestion_usuarios
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class gestion_usuariosActions extends sfActions
{
  public function executeIndex(sfWebRequest $request)
  {
        $this->usuarios = new sfDoctrinePager('Usuario', 20);//Doctrine_Core::getTable('Usuario')->createQuery('a')->execute();
        $this->usuarios->setQuery(Doctrine::getTable('Usuario')->createQuery('b')->where('b.registro_activo <> 0'));
        $this->usuarios->setPage($request->getParameter('pagina', 1));
        $this->usuarios->init();
  }

  public function executeShow(sfWebRequest $request)
  {
    $this->usuario = Doctrine_Core::getTable('Usuario')->find(array($request->getParameter('email')));
    $this->forward404Unless($this->usuario);
  }

  public function executeNew(sfWebRequest $request)
  {
    $this->form = new UsuarioForm();
  }

  public function executeCreate(sfWebRequest $request)
  {
    $this->forward404Unless($request->isMethod(sfRequest::POST));

    $this->form = new UsuarioForm();

    $this->processForm($request, $this->form);

    $this->setTemplate('new');
  }

  public function executeEdit(sfWebRequest $request)
  {      
    $this->forward404Unless($usuario = Doctrine_Core::getTable('Usuario')->find(array($request->getParameter('email'))), sprintf('Object usuario does not exist (%s).', $request->getParameter('email')));
    $this->form = new UsuariobForm($usuario);
  }

  public function executeUpdate(sfWebRequest $request)
  {
    $this->forward404Unless($request->isMethod(sfRequest::POST) || $request->isMethod(sfRequest::PUT));
    $this->forward404Unless($usuario = Doctrine_Core::getTable('Usuario')->find(array($request->getParameter('email'))), sprintf('Object usuario does not exist (%s).', $request->getParameter('email')));
    $this->form = new UsuariobForm($usuario);

    $this->processForm($request, $this->form);

    $this->setTemplate('edit');
  }

  public function executeDelete(sfWebRequest $request)
  {
    /*
    $request->checkCSRFProtection();

    $this->forward404Unless($usuario = Doctrine_Core::getTable('Usuario')->find(array($request->getParameter('email'))), sprintf('Object usuario does not exist (%s).', $request->getParameter('email')));
    $usuario->delete();

    $this->redirect('gestion_usuarios/index');
    */
    $arr_use = $request->getPostParameter('usuarios');
    
    for($i=0; $i<count($arr_use); $i++)
    {
        //print '-->'.$arr_use[$i];
        $this->forward404Unless($usuario = Doctrine_Core::getTable('Usuario')->find($arr_use[$i]), sprintf('El objeto beca NO EXISTE (%s).', $arr_use[$i]));
        $usuario->setRegistroActivo(0);
        $usuario->save();
    } 
    $this->redirect('gestion_usuarios/index');
  }

  protected function processForm(sfWebRequest $request, sfForm $form)
  {
    $form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName()));
    if ($form->isValid())
    {
		$usuario = new Usuario();
		$usuario->email = $this->form->getValue('email');
		$usuario->nombre = $this->form->getValue('nombre');
		$usuario->apellidos = $this->form->getValue('apellidos');
		$usuario->password = md5($this->form->getValue('password'));
		$usuario->id_perfil = $this->form->getValue('id_perfil');
		$usuario->registro_activo = 1;
		$usuario->save();
      //$usuario = $form->save();
		if($form->getNameTo() == 'UsuarioForm'){
           /*                        
                    $titulo = 'Mensaje de Confirmacion';
              $cabecera = 'Mensaje de Confirmacion AUIP';
              $mensaje = '<h2>Usuario creado exitosamente</h2><p>Atentamente te escribimos para notificarte que 
                                                tu usuario se ha creado exitosamente con los siguientes datos<br>
                                                email: '.$usuario->email.'<br> nombres: '.$usuario->nombre.'<br>
                                                apellidos: '.$usuario->apellidos.'<br> usuario: Aspirante <br>    ;) </p>';
              Mensajero::enviarCorreo($titulo, $cabecera, $mensaje, $usuario->email);
           */  
        }
    //cierre de enviar email
      $this->redirect('gestion_usuarios/edit?email='.$usuario->getEmail());
    }
  }
}
